package cn.zswltech.gruul.api;

import cn.zswltech.gruul.common.entity.DisplayGroupDO;
import cn.zswltech.gruul.common.entity.OrgDO;
import cn.zswltech.gruul.common.result.Response;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author Jim
 * @version 1.0.0
 * @descripition:
 * @date 2024/1/29 13:40
 */
// @FeignClient(value = "gruul",path = "/org")
@RequestMapping("org")
public interface OrgApi {
    /**
     * 获取机构关联的菜单和功能
     *
     * @return
     * @
     */
    @GetMapping("menu")
    Response<List<DisplayGroupDO>> getMenuFunctions(@RequestParam("orgId") Long orgId);

    /**
     * 机构关联菜单和功能
     *
     * @return
     * @
     */
    @PostMapping("menu")
    Response setMenuFunctions();

    /**
     * 获取全部机构
     *
     * @param orgOnly   是否仅选择机构
     * @param orgSelect 是否只返回用户所属的机构
     * @return
     */
    @GetMapping
    Response<List<OrgDO>> getOrgList(Boolean orgOnly, Boolean orgSelect);

    /**
     * 创建机构
     *
     * @return
     * @
     */
    @PostMapping
    Response createOrg();

    /**
     * 更新机构
     *
     * @return
     * @
     */
    @PutMapping
    Response updateOrg();

    /**
     * 删除机构
     *
     * @param id
     * @return
     * @
     */
    @DeleteMapping
    Response deleteOrg(@Param("id") Long id);
}
